package com.ssy.lingxi.dataauth.model.constant;

/**
 * 与数据权限有关的常量定义
 * @author 万宁
 * @version 2.0.0
 * @date 2021-04-07
 */
public class DataAuthConstant {

    /**
     * 用户数据权限在缓存中的Key的格式：token:userId:source
     */
    public static final String DATA_AUTH_CACHE_KEY_FORMAT = "%s:%s:%s";

    /**
     * 用户渠道权限在缓存中的Key的格式：token:userId:cs
     */
    public static final String CHANNEL_AUTH_CACHE_KEY_FORMAT = "%s:%s:cs";

    /**
     * HttpHeader中，Referer名称
     */
    public static final String HTTP_HEADER_REFERER = "Referer";

    /**
     * Aop拦截时，添加到当前Http属性（或HttpHeader）的标记，在Sql拦截时，如果没有此标记，则不做数据权限拦截
     */
    public static final String HTTP_ATTRIBUTE_DATA_AUTH_FLAG = "dataAuth";

    /**
     * Aop拦截时，添加到当前Http属性的数据库表名称的属性的Key
     */
    public static final String HTTP_ATTRIBUTE_TABLE_NAME_KEY = "tableName";

    /**
     * Aop拦截时，添加到当前Http属性的数据库表会员Id字段名称的属性的Key
     */
    public static final String HTTP_ATTRIBUTE_MEMBER_ID_COLUMN_NAME_KEY = "memberIdCol";

    /**
     * Aop拦截时，添加到当前Http属性的数据库表会员Id字段名称的属性的Key
     */
    public static final String HTTP_ATTRIBUTE_ROLE_ID_COLUMN_NAME_KEY = "roleIdCol";

    /**
     * Aop拦截时，添加到当前Http属性的数据库表用户Id字段名称的属性的Key
     */
    public static final String HTTP_ATTRIBUTE_USER_ID_COLUMN_NAME_KEY = "userIdCol";

    /**
     * Aop拦截时，添加到当前Http属性的权限菜单Url的属性的Key
     */
    public static final String HTTP_ATTRIBUTE_DATA_AUTH_URL_KEY = "authUrl";

    /**
     * Aop拦截时，添加到当前Http属性的拦截类型的属性的Key
     */
    public static final String HTTP_ATTRIBUTE_AUTH_TYPE_KEY = "authType";

    /**
     * 订单服务专用
     * Aop拦截时，添加到当前Http属性（或HttpHeader）的标记，如果没有此标记，则不做数据权限拦截
     */
    public static final String HTTP_ATTRIBUTE_ORDER_AUTH_FLAG = "orderAuth";
}
